package org.report.word.dto;

import com.deepoove.poi.policy.RenderPolicy;
import lombok.Data;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * word模板渲染参数
 * @author Administrator
 * @describe 说明
 * @date 2024/5/9 0009 9:49
 */
@Data
public class ParamDto {
    /**
     * 普通的数据填充，针对单个{{key}}的形式
     * 引用标签：{{key}}
     */
    private Map<String, Object> ordinaryData = new HashMap<>();

    /**
     * 普通的table数据填充，(只使用于普通的table遍历填充，对于需要合并单元格类型的，需要特殊处理)
     * 引用标签：{{key}}
     */
    private Map<String, List<Map<String, Object>>> ordinaryTableMap;
    /**
     * 动态的table渲染策略（用于特殊的table处理，如：合并单元格等）
     * 引用标签：{{key}}
     */
    private List<DynamicTableRenderDto> dynamicTableRenderDtoList = new ArrayList<>();
    /**
     * 合并单元格
     * key为所在word文档中第几个表格，从0开始
     */
    private Map<Integer, List<MergeTableCellDto>> mergeTableCellMap = new HashMap<>();
    /**
     * 自定义的内容渲染，可参考dynamicTableRenderDTOList
     * 用于极具业务特性的内容渲染，无法构建通用的渲染模型
     * 引用标签：{{key}}
     */
    private Map<String, RenderPolicy> customRenderPolicyMap = new HashMap<>();
    /**
     * 图表数据
     */
    private List<ChartDataDto> chartDataDtoList = new ArrayList<>();
}
